/**  
 * @Title:  PatrolMissionRecord.java   
 * @Package com.careers.liangweicenter.casecenter.api.domain   
 * @Description:    TODO(用一句话描述该文件做什么)   
 * @author: zyf     
 * @date:   2020年9月9日 下午2:57:07  
 * Company: CAREERS<br>
 * Copyright @ 2020 CAREERS .All rights reserved.<br>
 */
package com.careers.liangweicenter.casecenter.api.domain;

import com.careers.liangweicenter.casecenter.api.utils.AttachInfoAnnotation;
import com.careers.liangweicenter.casecenter.api.utils.MissionListValuesAnnotation;

import java.io.Serializable;
import java.util.Date;

/**
 * @Title: PatrolMissionRecord  <br>
 * @Description: 巡查任务记录，用于同步前的任务绑定<br>
 * Depend : TODO
 * 
 * @author zyf
 * @Modified by
 * @CreateDate 2020年9月9日 下午2:57:07 
 * @since JDK 1.8
 */
public class PatrolMissionRecord implements Serializable {

	private static final long serialVersionUID = -6047760833971861660L;
	
	private Long	id;
	private Long	serialNum;			//序号
	private String	missionCode;		//任务编号
	private Long	caseId;				//案件ID
	private Long	targetId;			//目标物ID
	private Long	originalUavSnapId;	//初始图斑
	@AttachInfoAnnotation(true)
	private Long	uavSnapId;			//关联图斑ID
	private Integer	patrolType;			//巡查类型：1-图斑核实；2-地上物盯防
	private Integer	rounds;				//同步轮次，默认1
	private Integer	status;				//状态：-2-被合并;-1-作废；0-打回；1-登记未派发；2-已派发（反馈未反馈）；3-已同步待派发；4-已同步已派发（反馈/未反馈）；5-盯防整改中；6-已结案
	private Integer	preStatus;			//打回前的状态，用以编辑后恢复
	private Integer	enable;
	private Date	createTime;			//创建时间
	private Date	updateTime;			//最新更新时间
	@AttachInfoAnnotation(true)
	private String	description;		//文字说明
	@AttachInfoAnnotation(true)
	private String	detailAddress;		//详细地址
	@AttachInfoAnnotation(true)
	private String	longitude;			//经度
	@AttachInfoAnnotation(true)
	private String	latitude;			//纬度
	private Long	issuedSuggestionId;	//最新同步处置建议ID
	private Long	bigId;				//地上物大类
	private Integer	invalidReason;		//作废原因：1-其他；2-测试；3-非两违；4-非大亚湾管辖；5-上报信息错误
	/**
	 * 任务序号，任务导入时用
	 * */
	private String	missionIndex;		//
	/**
	 * 附属信息
	 * */
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'','1':'三级','2':'二级','3':'一级'}")
	private Integer	lightStatus;		//亮灯状态：0-未选；1-三级；2-二级；3-一级
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'','1':'不合法','2':'合法'}")
	private Integer	isLegal;			//是否合法：0-空；1-不合法；2-合法
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'','1':'违法用地','2':'违法建设','1,2':'违法用地,违法建设'}")
	private String liangweiType;		//两违类型：0-合法；1-违法用地；2-违法建设；1,2-违法用地、违法建设
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'合法','1':'缺证件','2':'超占','3':'超高','4':'已整改','2,3':'超占、超高'}")
	private String	illegalTypes;		//违法类型：0-合法；1-缺证件；2-超面积；3-超高；
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'','1':'无证件','2':'证件不齐','3':'证件齐全'}")
	private Integer	certificationStatus;//证件状态：0-无关；1-无证件；2-证件不齐；3-证件齐全		和绑定的图斑同步
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'其他','1':'永久性建筑物','2':'临时性建筑物','3':'小区违建'}")
	private Integer	permanentType;		//建筑分类:0-非建筑物；1-永久性建筑物；2-临时性建筑物
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'','1_1':'地基','1_2':'房地产地基','2_1':'村庄规划范围内','2_2':'村庄规划范围外','0_1':'推填土','0_2':'硬底化','0_3':'乱堆放','0_4':'坟墓','0_5':'加建','0_6':'外墙装修','3_1':'小区加建','3_2':'小区搭建'}")
	private String	constructionType;	//建设类别：0-其他；1-地基；2-加建；3-外墙装修；
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'','1':'国有土地','2':'集体土地'}")
	private Integer	landOwnerShip;		//土地性质：0-未判断；1-国有土地；2-集体土地		和绑定的图斑同步
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'500㎡以下','1':'500㎡以上'}")
	private Integer	landUseScale;		//建设规模(用地面积):0-500㎡以下；1-500㎡以上
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'否','1':'是'}")
	private Integer	isSandPlant;		//是否沙场内违建：0-否；1-是
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'外','1':'内'}")
	private Integer	isVillage;			//是否村庄范围内：0-外；1-内
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'不需要','1':'需要'}")
	private Integer	examineRequired;	//是否需要上会（要求领导检查）：0-不需要；1-需要
//	private Integer	rectifySituation;	//拆除复绿调离整改情况：0-空；1-未拆除/复绿/调离；2-已拆除/复绿；调离；3-无需拆除/复绿/调离
	@AttachInfoAnnotation(true)
	private String	procedureInfo;		//报建信息
//	private String	处置建议;	
	@AttachInfoAnnotation(true)
	private String	attachNote;			//备注，待确认
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'未选','1':'未整改','2':'已整改'}")
	private Integer	isRectify;			//是否整改：0-;1-未整改；2-已整改
	@AttachInfoAnnotation(true)
	private String	rectifyReason;		//整改原因
	/**
	 * 以下字段为可能删除的字段，在前端页面上显示在最后
	 * */
	private String	originalSituation;	//最初状态（建设层数）
	@AttachInfoAnnotation(true)
	private String	latestSituation;	//最新状态（建设层数）
	@MissionListValuesAnnotation("{'0':'待确认','1':'超高','2':'超占','3':'未超高超占','1,2':'超高、超占'}")
	private String	outOfStatus;		//超高超占状态：0-待确认；1-超高；2-超占；3-未超高超占；1,2-超高超占	和绑定的图斑同步
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'不需要','1':'无需整改','2':'未整改','3':'已整改'}")
	private Integer	rectifyStatus;		//整改状态：0-待确认；1-无需整改；2-未整改；3-已整改
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'否','1':'是'}")
	private Integer	subdistrictOffice;	//街道办研判：0-否；1-是
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'','1':'同意绿灯','2':'拆除','3':'吊离','4':'复绿'}")
	private Integer	subdistrictOfficeNote;//街道办回复情况：0-其它：1-同意绿灯；2-拆除；3-吊离；4-复绿；wenjian1
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'不需要','1':'需要'}")
	private Integer	handleRequired;		//是否需要处置（拆除/吊离/复绿/测绘）；0-不需要；1-需要
	
	private Long	parentWarZoneId;	//父级战区ID
	private Long	warZoneId;			//小类战区ID


	/** 20210617新增字段：红黄灯：依据是否整改判断亮灯 */
//	@AttachInfoAnnotation(true)
//	@MissionListValuesAnnotation("{'0':'未选','1':'红灯','2':'绿灯'}")
//	private Integer	lightStatusForRectify;		//依据是否整改判断亮灯；0-未选；1-红灯 2-绿灯 弃用

	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'-1':'未选','0':'未选','1':'绿灯','2':'黄灯','3':'红灯'}")
	private Integer	lightUpBit;		//依据是否整改判断亮灯；0-未选；1-红灯 2-黄灯 3-绿灯

	//20210719新增字段app事件上报使用的：挂牌图片和现场图片
	private String listingPictures;                                //挂牌照片
	private String scenePictures;                                  //现场照片

	//20210721新增字段是否需要核实
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'不需要','1':'需要'}")
	private Integer isNeedVerify;                                  //是否需要核实 0-不需要，1-需要

	//202101214新增字段是否需要核实
	@AttachInfoAnnotation(true)
	@MissionListValuesAnnotation("{'0':'街道办','1':'执法局','2':'社管局','3':'国土所'}")
	private Integer lawEnforceSubject;                             //执法主体：0-街道办 1-执法局 2-社管局

	public PatrolMissionRecord() {
		super();
	}
	
	public PatrolMissionRecord(Long caseId, String missionCode, String description, String detailAddress, String longitude, String latitude, String originalSituation, Long originalUavSnapId, Long uavSnapId, Integer patrolType, Long targetId) {
		super();
		this.caseId = caseId;
		this.rounds = 1;
		this.missionCode = missionCode;
		this.description = description;
		this.detailAddress = detailAddress;
		this.longitude = longitude;
		this.latitude = latitude;
		this.originalSituation = originalSituation;
		this.latestSituation = originalSituation;
		this.originalUavSnapId = originalUavSnapId;
		this.uavSnapId = uavSnapId;
		this.patrolType = patrolType;
		this.targetId = targetId;
		this.status = 1;
	}

	public Integer getLawEnforceSubject() {
		return lawEnforceSubject;
	}
	public void setLawEnforceSubject(Integer lawEnforceSubject) {
		this.lawEnforceSubject = lawEnforceSubject;
	}
	public Integer getIsNeedVerify() {
		return isNeedVerify;
	}

	public void setIsNeedVerify(Integer isNeedVerify) {
		this.isNeedVerify = isNeedVerify;
	}

	public String getListingPictures() {
		return listingPictures;
	}

	public void setListingPictures(String listingPictures) {
		this.listingPictures = listingPictures;
	}

	public String getScenePictures() {
		return scenePictures;
	}

	public void setScenePictures(String scenePictures) {
		this.scenePictures = scenePictures;
	}

	public Integer getLightUpBit() {
		return lightUpBit;
	}
	public void setLightUpBit(Integer lightUpBit) {
		this.lightUpBit = lightUpBit;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getMissionCode() {
		return missionCode;
	}

	public void setMissionCode(String missionCode) {
		this.missionCode = missionCode;
	}

	public Long getCaseId() {
		return caseId;
	}

	public void setCaseId(Long caseId) {
		this.caseId = caseId;
	}

	public Long getTargetId() {
		return targetId;
	}

	public void setTargetId(Long targetId) {
		this.targetId = targetId;
	}

	public Long getOriginalUavSnapId() {
		return originalUavSnapId;
	}

	public void setOriginalUavSnapId(Long originalUavSnapId) {
		this.originalUavSnapId = originalUavSnapId;
	}

	public Long getUavSnapId() {
		return uavSnapId;
	}

	public void setUavSnapId(Long uavSnapId) {
		this.uavSnapId = uavSnapId;
	}

	public Integer getPatrolType() {
		return patrolType;
	}

	public void setPatrolType(Integer patrolType) {
		this.patrolType = patrolType;
	}

	public Integer getRounds() {
		return rounds;
	}

	public void setRounds(Integer rounds) {
		this.rounds = rounds;
	}

	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public Integer getEnable() {
		return enable;
	}

	public void setEnable(Integer enable) {
		this.enable = enable;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public String getOriginalSituation() {
		return originalSituation;
	}

	public void setOriginalSituation(String originalSituation) {
		this.originalSituation = originalSituation;
	}

	public String getLatestSituation() {
		return latestSituation;
	}

	public void setLatestSituation(String latestSituation) {
		this.latestSituation = latestSituation;
	}

	public Integer getLightStatus() {
		return lightStatus;
	}

	public void setLightStatus(Integer lightStatus) {
		this.lightStatus = lightStatus;
	}

	public String getLiangweiType() {
		return liangweiType;
	}

	public void setLiangweiType(String liangweiType) {
		this.liangweiType = liangweiType;
	}

	public String getOutOfStatus() {
		return outOfStatus;
	}

	public void setOutOfStatus(String outOfStatus) {
		this.outOfStatus = outOfStatus;
	}

	public Integer getCertificationStatus() {
		return certificationStatus;
	}

	public void setCertificationStatus(Integer certificationStatus) {
		this.certificationStatus = certificationStatus;
	}

	public Integer getLandOwnerShip() {
		return landOwnerShip;
	}

	public void setLandOwnerShip(Integer landOwnerShip) {
		this.landOwnerShip = landOwnerShip;
	}

//	public Integer getIsLegal() {
//		return isLegal;
//	}
//
//	public void setIsLegal(Integer isLegal) {
//		this.isLegal = isLegal;
//	}

	public Integer getRectifyStatus() {
		return rectifyStatus;
	}

	public String getIllegalTypes() {
		return illegalTypes;
	}

	public void setIllegalTypes(String illegalTypes) {
		this.illegalTypes = illegalTypes;
	}

	public void setRectifyStatus(Integer rectifyStatus) {
		this.rectifyStatus = rectifyStatus;
	}

	public String getDetailAddress() {
		return detailAddress;
	}

	public void setDetailAddress(String detailAddress) {
		this.detailAddress = detailAddress;
	}

	public String getLongitude() {
		return longitude;
	}

	public void setLongitude(String longitude) {
		this.longitude = longitude;
	}

	public String getLatitude() {
		return latitude;
	}

	public void setLatitude(String latitude) {
		this.latitude = latitude;
	}

	public String getAttachNote() {
		return attachNote;
	}

	public void setAttachNote(String attachNote) {
		this.attachNote = attachNote;
	}

	public Long getIssuedSuggestionId() {
		return issuedSuggestionId;
	}

	public void setIssuedSuggestionId(Long issuedSuggestionId) {
		this.issuedSuggestionId = issuedSuggestionId;
	}

	public String getMissionIndex() {
		return missionIndex;
	}

	public void setMissionIndex(String missionIndex) {
		this.missionIndex = missionIndex;
	}

	public Long getBigId() {
		return bigId;
	}

	public void setBigId(Long bigId) {
		this.bigId = bigId;
	}

	public Long getSerialNum() {
		return serialNum;
	}

	public void setSerialNum(Long serialNum) {
		this.serialNum = serialNum;
	}

	public Integer getPreStatus() {
		return preStatus;
	}

	public void setPreStatus(Integer preStatus) {
		this.preStatus = preStatus;
	}

	public String getConstructionType() {
		return constructionType;
	}

	public void setConstructionType(String constructionType) {
		this.constructionType = constructionType;
	}

	public Integer getLandUseScale() {
		return landUseScale;
	}

	public void setLandUseScale(Integer landUseScale) {
		this.landUseScale = landUseScale;
	}

	public Integer getIsSandPlant() {
		return isSandPlant;
	}

	public void setIsSandPlant(Integer isSandPlant) {
		this.isSandPlant = isSandPlant;
	}

	public Integer getIsVillage() {
		return isVillage;
	}

	public void setIsVillage(Integer isVillage) {
		this.isVillage = isVillage;
	}

	public Integer getSubdistrictOffice() {
		return subdistrictOffice;
	}

	public void setSubdistrictOffice(Integer subdistrictOffice) {
		this.subdistrictOffice = subdistrictOffice;
	}

	public Integer getSubdistrictOfficeNote() {
		return subdistrictOfficeNote;
	}

	public void setSubdistrictOfficeNote(Integer subdistrictOfficeNote) {
		this.subdistrictOfficeNote = subdistrictOfficeNote;
	}

	public Integer getHandleRequired() {
		return handleRequired;
	}

	public void setHandleRequired(Integer handleRequired) {
		this.handleRequired = handleRequired;
	}

	public Integer getExamineRequired() {
		return examineRequired;
	}

	public void setExamineRequired(Integer examineRequired) {
		this.examineRequired = examineRequired;
	}

	public String getProcedureInfo() {
		return procedureInfo;
	}

	public void setProcedureInfo(String procedureInfo) {
		this.procedureInfo = procedureInfo;
	}

	public Integer getPermanentType() {
		return permanentType;
	}

	public void setPermanentType(Integer permanentType) {
		this.permanentType = permanentType;
	}

	public Integer getInvalidReason() {
		return invalidReason;
	}

	public void setInvalidReason(Integer invalidReason) {
		this.invalidReason = invalidReason;
	}

	public Integer getIsLegal() {
		return isLegal;
	}

	public void setIsLegal(Integer isLegal) {
		this.isLegal = isLegal;
	}

	public Long getParentWarZoneId() {
		return parentWarZoneId;
	}

	public void setParentWarZoneId(Long parentWarZoneId) {
		this.parentWarZoneId = parentWarZoneId;
	}

	public Long getWarZoneId() {
		return warZoneId;
	}

	public void setWarZoneId(Long warZoneId) {
		this.warZoneId = warZoneId;
	}

	public Integer getIsRectify() {
		return isRectify;
	}

	public void setIsRectify(Integer isRectify) {
		this.isRectify = isRectify;
	}

	public String getRectifyReason() {
		return rectifyReason;
	}

	public void setRectifyReason(String rectifyReason) {
		this.rectifyReason = rectifyReason;
	}
}
